/**
 *
 * @author Cesar Mamani Lipa
 * @date   04/04/2010
 */

var registroTipoPersonalPolicial=null;
var winMantenerTipoPersonalPolicial=null;

function gestionarTipoPersonalPolicial(){
    var dsTipoPersonalPolicial=new Ext.data.Store({
        autoDestroy: true,
        url: "lista-tipo-personal-policial",
        reader: new Ext.data.JsonReader(
        {
            root: "tipopersonalpolicial",
            fields:
            [
            {
                name: "ntippIdentificador",
                type: "integer"
            },
            {
                name: "ctippDescripcion",
                type: "string"
            },
            {
                name: "dtippFechacreacion",
                type: "string"
            }
            ]
        })
    });

    dsTipoPersonalPolicial.on("exception",function(proxy, type, action, options, response, arg){
        Ext.MessageBox.alert("Error","Sucedio un error al cargar los tipos de personal policial"+response.responseText);
    });

    var grdTipoPersonalPolicial=new Ext.grid.GridPanel({
        title: "Administrar Tipo de Personal Policial",
        store: dsTipoPersonalPolicial,
        loadMask: false,
        height:470,
        width:1050,
        border:true,
        frame: true,
        plugins:[new Ext.ux.grid.Search({
            mode:'local',
            iconCls:false,
            minLength:2,
            width: 190
        })],
        columns:
        [new Ext.grid.RowNumberer(),
        {
            header: "Descripcion",
            dataIndex: "ctippDescripcion",
            width: 200,
            sortable:true
        },{
            header: "Fecha Creacion",
            dataIndex: "dtippFechacreacion",
            width: 100,
            sortable:true
        }
        ],
       tbar:[{
            text:'Agregar',
            iconCls:'icon-add',
            handler: function(){
                mantenerTipoPersonalPolicial(true);
            }
        }, '-', {
            text:'Modificar',
            iconCls:'icon-modify',
            handler: function(){
                mantenerTipoPersonalPolicial(false);
            }
        },'-',{
            text:'Eliminar',
            iconCls:'icon-delete',
            handler: function(){
                eliminarTipoPersonalPolicial();
            }
        },'-',{
            text:'Imprimir',
            iconCls:'icon-print',
            handler: function(){

            }
        }]
    });

    grdTipoPersonalPolicial.on("beforerender",function(component){
        var div=document.getElementById("divContenido");
        var elemento=div.childNodes[0];
        if(elemento != null) div.removeChild(elemento);
    });
    grdTipoPersonalPolicial.on("rowclick",function(grid,rowIndex,e){
        registroTipoPersonalPolicial=grid.getStore().getAt(rowIndex);
    });

    var seleccionTipoPersonalPolicial=grdTipoPersonalPolicial.getSelectionModel();
    seleccionTipoPersonalPolicial.on("rowselect",function(sm,fila,registro){
        registroTipoPersonalPolicial=registro;
    });

    grdTipoPersonalPolicial.render("divContenido");
    dsTipoPersonalPolicial.load();
}

function mantenerTipoPersonalPolicial(nuevo){
    var frmGestionarTipoPersonalPolicial =new Ext.Panel({
            bodyBorder:true,
            height:400,
            bodyStyle: "background-color:#DFE8F6; border:0"
    });
    new Ajax.Request("frmGestionarTipoPersonalPolicial.html",{
        method: "post",
        asynchronous:false,
        onSuccess: function(transport){
            frmGestionarTipoPersonalPolicial.html=transport.responseText;
            winMantenerTipoPersonalPolicial= new Ext.Window({
                title: (nuevo ? 'Agregar ' : 'Modificar ') + 'Tipo Personal Policial',
                closeAction:'destroy',
                width:410,
                height:220,
                x: 500,
                y:200,
                items:[frmGestionarTipoPersonalPolicial],
                shim:false,
                modal:true,
                maximizable:true,
                minimizable:false,
                animCollapse:false,
                resizable:false,
                constrainHeader:true,
                bbar:[{
                    text:'Grabar',
                    iconCls:'icon-save',
                    handler: function(){
                        if (nuevo)
                            insertarTipoPersonalPolicial();
                        else
                            actualizarTipoPersonalPolicial();
                    }
                }, '-', {
                    text:'Cancelar',
                    iconCls:'icon-cancel',
                    handler: function(){
                        winMantenerTipoPersonalPolicial.destroy();
                    }
                }]
            });
            winMantenerTipoPersonalPolicial.show();
            winMantenerTipoPersonalPolicial.focus();
            if (!nuevo){
                $("frmgestionartipopersonalpolicial").ntippIdentificador.value = registroTipoPersonalPolicial.data.ntippIdentificador;
                $("frmgestionartipopersonalpolicial").ctippDescripcion.value = registroTipoPersonalPolicial.data.ctippDescripcion;
            }
        },
        onFailure:function(t){
            Information("Aviso del Sistema","Sucedio un error al intentar cargar el formulario"+t.responseText);
        }
    });
}

function insertarTipoPersonalPolicial(){
    new Ajax.Request("tipo-personal-policial!agregar",{
        method:"post",
        parameters: $("frmgestionartipopersonalpolicial").serialize(),
        onSuccess: function(transport){
            var operacion =transport.responseText.evalJSON();
            if (operacion.success){
                Information("Aviso del Sistema",operacion.mensaje);
            }else{
                Information("Aviso del Sistema",operacion.mensaje);
            }
            winMantenerTipoPersonalPolicial.destroy();
            gestionarTipoPersonalPolicial();
        },
        onFailure:function(transport){
            Information("Aviso del Sistema","Sucedio un error al intentar cargar el formulario"+transport.responseText);
        }
    });
}

function actualizarTipoPersonalPolicial(){
    new Ajax.Request("tipo-personal-policial!modificar",{
        method:"post",
        parameters: $("frmgestionartipopersonalpolicial").serialize(),
        onSuccess: function(transport){
            var operacion =transport.responseText.evalJSON();
            if (operacion.success){
                Information("Aviso del Sistema",operacion.mensaje);
            }else{
                Information("Aviso del Sistema",operacion.mensaje);
            }
            winMantenerTipoPersonalPolicial.destroy();
            gestionarTipoPersonalPolicial();
        },
        onFailure:function(transport){
            Information("Aviso del Sistema","Sucedio un error al intentar cargar el formulario"+transport.responseText);
        }
    });
}

function eliminarTipoPersonalPolicial(){
    Ext.MessageBox.confirm("Confirmación", "Eliminar Registro", function(button){
            if(button=="yes"){
                new Ajax.Request("tipo-personal-policial!eliminar",{
                    method:"post",
                    parameters:{
                        ntippIdentificador: registroTipoPersonalPolicial.data.ntippIdentificador
                    },
                    onSuccess: function(transport){
                        var operacion = transport.responseText.evalJSON();
                        if (operacion.success){
                            Information("Aviso del Sistema",operacion.mensaje);
                        }else{
                            Information("Aviso del Sistema",operacion.mensaje);
                        }
                        gestionarTipoPersonalPolicial();
                    },
                    onFailure: function(transport){
                        Information("Aviso del Sistema","Sucedio un error al intentar eliminar el registro"+transport.responseText);
                    }
                });
            }
        });
}
